import axios from "axios";
import store from "@/store";

const instance = axios.create({
    // baseURL: "http://kumanxuan1.f3322.net:8881/cms",/api
    baseURL: "api",
    timeout: 5000
})

//axios的请求拦截器
instance.interceptors.request.use(config => {
    //config是一个对象记录了本次请求的相关信息
    // console.log(config);
    //做请求前的相关准备   添加请求头
    let token = localStorage.getItem('x-auth-token')
    if (token) {
        config.headers["x-auth-token"] = token
    }
    return config
}, err => {
    return Promise.reject(err)
})

//axios的响应拦截器
instance.interceptors.response.use(res => {
    console.log(res.data)
        //code不为0，400,407的处理
    if (!res.data.code == 0 && !res.data.code == 400 && !res.data.code == 407) { // && !res.data.code == 400 && !res.data.code == 407
        // alert(res.data.message)
        //业务上的失败
        store.dispatch('ToastStatus/asyncChanIsShowToast', {
            msg: res.data.message,
            type: "danger"
        })
        return false
    }
    return res.data //请求的数据进行处理
}, err => {
    //请求失败
    //相对于在组件中发送请求之后的catch方法
    store.dispatch('ToastStatus/asyncChanIsShowToast', {
        msg: err,
        type: "danger"
    })
    return Promise.reject(err)
})

export default instance